package qualomelhor.database;

import java.util.Date;
import com.googlecode.objectify.annotation.*;
import javax.persistence.Id;
import java.io.Serializable;

@Entity
public class Usuario implements Serializable {

	private static final long serialVersionUID = 0;
	
	@Id 
	private Long id; 

	@Indexed
	private String userId;

	@Indexed
	private int origemLogin;

	private String accessToken;

	@Indexed
	private String email;

	private String senha;

	private String nomeUsuario;

	private String cidade;

	private String estado;

	@Indexed
	private String pais;

	@Indexed
	private boolean usuarioConfirmado;

	private boolean usuarioBloqueado;

	private String uuid;

	private boolean admin;

	private String observacao;

	private String urlImageProfile;

	@Indexed
	private Date date;

	@Indexed
	private int numReenviosEmail;

	@Indexed
	private boolean concordoTermo;

	@Indexed
	private boolean receberNovidades;

	public Usuario() {

	}

	public Usuario(String email, String userId, int origemLogin, String accessToken, String senha, String nomeUsuario, String cidade, String estado, String pais, String uuid, boolean concordoTermo, String urlImageProfile, Date date) {
		this.email = email;
		this.userId = userId;
		this.origemLogin = origemLogin;
		this.accessToken = accessToken;
		this.senha = senha;
		this.nomeUsuario = nomeUsuario;
		this.cidade = cidade;
		this.estado = estado;
		this.pais = pais;
		this.urlImageProfile = urlImageProfile;
		this.date = date;
		if (email != null && (email.equals("w@w.com") || email.equals("rodteixo2@yahoo.com.br"))) {
	        this.admin = true;
		} else {
			this.admin = false;
		}
		this.uuid = uuid;
	        
		this.usuarioBloqueado = false;
		if (this.origemLogin == 0) { // site
			this.usuarioConfirmado = false;
		} else {
			this.usuarioConfirmado = true; //facebook, ou twitter ou google
		}
		this.observacao = null;
		this.numReenviosEmail = 0;
		this.concordoTermo = concordoTermo;
		this.receberNovidades = true;
	}

	public Long getId() {
		return id;
	}

	public String getEmail() { 
		return email;
	}

	public String getUserId() {
		return userId;
	}

	public int getOrigemLogin() {
		return origemLogin;
	}

	public String getAccessToken() {
		return accessToken;
	}

	public String getSenha() { 
		return senha;
	}

	public String getNomeUsuario() {
		return nomeUsuario;
	}

	public boolean getUsuarioConfirmado() {
		return usuarioConfirmado;
	}

	public boolean getUsuarioBloqueado() {
		return usuarioBloqueado;
	}

	public String getCidade() { 
		return cidade; 
	} 

	public String getEstado() { 
		return estado; 
	} 

	public String getPais() {
		return pais;
	}

    public String getUuid() {
    	return uuid;
	}

	public boolean getAdmin() {
		return admin;
	}

	public int getNumReenviosEmail() {
		return numReenviosEmail;
	}

	public String getObservacao() {
		return observacao;
	}

	public boolean getConcordoTermo() {
		return concordoTermo;
	}

	public String getUrlImageProfile() {
		return urlImageProfile;
	}

	public Date getDate() { 
		return date; 
	}

	public boolean getReceberNovidades() {
		return receberNovidades;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public void setUserId(String userId) {
		this.userId = userId;
	}
	    
	public void setOrigemLogin(int origemLogin) {
		this.origemLogin = origemLogin;
	}

	public void setAccessToken(String accessToken) {
		this.accessToken = accessToken;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	public void setNomeUsuario(String nomeUsuario) {
		this.nomeUsuario = nomeUsuario;
	}

	public void setUsuarioConfirmado(boolean usuarioConfirmado) {
		this.usuarioConfirmado = usuarioConfirmado;
	}

	public void setUsuarioBloqueado(boolean usuarioBloqueado) {
		this.usuarioBloqueado = usuarioBloqueado;
	}

	public void setCidade(String cidade) { 
		this.cidade = cidade; 
	} 

	public void setEstado(String estado) { 
		this.estado = estado; 
	} 

	public void setPais(String pais) {
		this.pais = pais;
	}

	public void setUuid(String uuid) {
		this.uuid = uuid;
	}

	public void setAdmin(boolean admin) {
		this.admin = admin;
	}

	public void setNumReenviosEmail (int numReenviosEmail) {
		this.numReenviosEmail = numReenviosEmail;
	}

	public void setObservacao(String observacao) {
		this.observacao = observacao;
	}

	public void setConcordoTermo(boolean concordoTermo) {
		this.concordoTermo = concordoTermo;
	}

	public void setUrlImageProfile (String urlImageProfile) {
		this.urlImageProfile = urlImageProfile;
	}

	public void setDate(Date date) { 
		this.date = date; 
	}

	public void setReceberNovidades(boolean receberNovidades) {
		this.receberNovidades = receberNovidades;
	}
}